widget: Add gtk_widget_get_css_node()
authorBenjamin Otte <otte@redhat.com>
Mon, 9 Feb 2015 21:27:44 +0000 (22:27 +0100)
committerBenjamin Otte <otte@redhat.com>
Wed, 18 Mar 2015 14:23:31 +0000 (15:23 +0100)
and replace gtk_style_context_get_root() with it.

gtk/gtkcontainer.c
gtk/gtkstylecontext.c
gtk/gtkstylecontextprivate.h
gtk/gtkwidget.c
gtk/gtkwidgetprivate.h
gtk/gtkwindow.c

index 6dc69b8c499e8d137fe29003fd821dbeabfd13f9..583e4c0e36a02ec05ca406dd60a26cd4f74e4159 100644 (file)
@@ -1853,7 +1853,7 @@ gtk_container_idle_sizer (GdkFrameClock *clock,
       current_time = g_get_monotonic_time ();
 
       container->priv->restyle_pending = FALSE;
-      gtk_css_node_validate (gtk_style_context_get_root (gtk_widget_get_style_context (GTK_WIDGET (container))),
+      gtk_css_node_validate (gtk_widget_get_css_node (GTK_WIDGET (container)),
                              current_time,
                              empty);
 
index f7d9fd9ebbb9ad45a2df008de1f62d4ac4bf4154..19a057ee8ff582b066bee3d19a94e75271d5b8f1 100644 (file)
@@ -181,6 +181,7 @@ static void gtk_style_context_impl_get_property (GObject      *object,
                                                  GValue       *value,
                                                  GParamSpec   *pspec);
 
+static GtkCssNode * gtk_style_context_get_root (GtkStyleContext *context);
 
 G_DEFINE_TYPE_WITH_PRIVATE (GtkStyleContext, gtk_style_context, G_TYPE_OBJECT)
 
@@ -459,7 +460,7 @@ gtk_style_context_is_saved (GtkStyleContext *context)
   return context->priv->saved_nodes != NULL;
 }
 
-GtkCssNode *
+static GtkCssNode *
 gtk_style_context_get_root (GtkStyleContext *context)
 {
   GtkStyleContextPrivate *priv;
index d849d1407165bd913482f04248bac3988457a783..4a39275aa8368cea90165baa21a44ef33a9fb3d9 100644 (file)
@@ -30,7 +30,6 @@ G_BEGIN_DECLS
 
 GtkStyleContext *gtk_style_context_new_for_node              (GtkCssNode      *node);
 
-GtkCssNode *    gtk_style_context_get_root                   (GtkStyleContext *context);
 void            gtk_style_context_set_id                     (GtkStyleContext *context,
                                                               const char      *id);
 const char *    gtk_style_context_get_id                     (GtkStyleContext *context);
index 7460cd256cb8d0a7f8b77671ff507bf8676fdf39..e13145ccfee30e0bfc1e34cbf52d0c1bd8767290 100644 (file)
@@ -16413,6 +16413,12 @@ _gtk_widget_style_context_invalidated (GtkWidget *widget)
     }
 }
 
+GtkCssNode *
+gtk_widget_get_css_node (GtkWidget *widget)
+{
+  return widget->priv->cssnode;
+}
+
 /**
  * gtk_widget_get_style_context:
  * @widget: a #GtkWidget
@@ -16466,10 +16472,7 @@ _gtk_widget_invalidate_style_context (GtkWidget    *widget,
 
   priv = widget->priv;
 
-  if (priv->context == NULL)
-    return;
-
-  gtk_css_node_invalidate (gtk_style_context_get_root (priv->context), change);
+  gtk_css_node_invalidate (priv->cssnode, change);
 }
 
 /**
index 7f121aa1288c1c69ab8498251db3e84d9c945616..88af50c18facc52de439bdb98a86270bbccd19c0 100644 (file)
@@ -32,6 +32,7 @@
 
 G_BEGIN_DECLS
 
+GtkCssNode *  gtk_widget_get_css_node       (GtkWidget *widget);
 void         _gtk_widget_set_visible_flag   (GtkWidget *widget,
                                              gboolean   visible);
 gboolean     _gtk_widget_get_in_reparent    (GtkWidget *widget);
index 14d47232180ba8902140df5960bcd223ab80a8a3..0a5202009ffcc7bc61d5b743d8d1570cf0cad807 100644 (file)
@@ -5849,7 +5849,7 @@ gtk_window_show (GtkWidget *widget)
   need_resize = _gtk_widget_get_alloc_needed (widget) || !gtk_widget_get_realized (widget);
 
   empty = _gtk_bitmask_new ();
-  gtk_css_node_validate (gtk_style_context_get_root (gtk_widget_get_style_context (widget)),
+  gtk_css_node_validate (gtk_widget_get_css_node (widget),
                          g_get_monotonic_time (),
                          empty);
   _gtk_bitmask_free (empty);